phosphor-disposable
A module for expressing the disposable object pattern.
API Docs
Package Install
Prerequisites
npm install --save phosphor-disposable
Source Build
Prerequisites
git clone https://github.com/phosphorjs/phosphor-disposable.git
cd phosphor-disposable
npm install
Rebuild
npm run clean
npm run build
Run Tests
Follow the source build instructions first.
npm test
Build Docs
Follow the source build instructions first.
npm run docs
Navigate to docs/index.html
.
Supported Runtimes
The runtime versions which are currently known to work are listed below.
Earlier versions may also work, but come with no guarantees.
- Node 0.12.7+
- IE 11+
- Firefox 32+
- Chrome 38+
Bundle for the Browser
Follow the package install instructions first.
npm install --save-dev browserify
browserify myapp.js -o mybundle.js
Usage Examples
Note: This module is fully compatible with Node/Babel/ES6/ES5. Simply
omit the type declarations when using a language other than TypeScript.
import {
DisposableDelegate, DisposableSet, IDisposable
} from 'phosphor-disposable';
let delegate = new DisposableDelegate(() => {
console.log('disposed');
});
delegate.dispose();
delegate.dispose();
let d1 = new DisposableDelegate(() => {
console.log('one');
});
let d2 = new DisposableDelegate(() => {
console.log('two');
});
let d3 = new DisposableDelegate(() => {
console.log('three');
});
let set = new DisposableSet([d1, d2, d3]);
set.dispose();
set.dispose();
class MyDisposable implements IDisposable {
constructor(id: string) {
this._id = id;
}
get isDisposed(): boolean {
return this._id === null;
}
dispose(): void {
if (this._id !== null) {
console.log(this._id);
this._id = null;
}
}
private _id: string;
}
let foo = new MyDisposable('foo');
let bar = new MyDisposable('bar');
let baz = new MyDisposable('baz');
let set = new DisposableSet();
set.add(foo);
set.add(bar);
set.add(baz);
set.dispose();
set.dispose();